机器学习预测乳腺肿瘤性质(3)——贝叶斯分类器
作者:汪君,专职数据分析,Python和R爱好者
个人微信公众号:学英文和玩数据
前面的两篇学习笔记机器学习预测乳腺肿瘤性质(1)和机器学习预测乳腺肿瘤性质(2)中,我们撸了一遍SGD,logistic regression,SVM 和Random forest 的代码,今天在这个数据集上再来试试朴素贝叶斯分类器(Naive Bayesian classifier),也是有现成的函数。
在get your hands dirty之前,我们先来复习一下贝叶斯分类器的原理,看看贝叶斯公式长什么样子:
依据
我们可以得到:
其中
那么,上面的贝叶斯公式(1)就可以简化为这样的形式
对于已知的数据集,
在实际运算中,我们有给定的
上面这个公式说明把新的样本分到某一类的概率
利用已标注的数据集中不同类别中x变量来估计统计分布的参数(
举例当y=0时,计算这个变量的mean和sd等参数,得到y=0时的x1的条件概率分布。
from sklearn.naive_bayes
import GaussianNB
nbClf=GaussianNB()
from sklearn.model_selection import cross_val_score
cross_val_score(nbClf,X=predi_features,y=diagnosis,cv=5,scoring=”accuracy”)
五折交叉验证的结果(accuracy)为
效果还不错。
朴素贝叶斯的模型其实进行了非常强的假设,比如各个X变量之间相互独立,真实情况是大部分时间X变量之间并不完全相互独立的。还有正态分布的假设,很多时候也不成立。然而这些都不妨碍朴素贝叶斯在分类方面的优良表现,尤其是在文本分类和垃圾邮件过滤的应用方面,朴素贝叶斯分类器表现相当不错。但是要注意sklean里面的朴素贝叶斯分类器predict_proba的函数预测的概率并不准确(哪位有兴趣在留言区解释原因?)。
对比其他分类器,朴素贝叶斯还有运算速度上的优势,同时由于上面提到的独立性假设,朴素贝叶斯也不太会受到curse of dimentionality的影响。
参考资料:
1 官方文档 http://scikit-learn.org/stable/modules/naive_bayes.html
如果大家觉得这篇学习笔记有帮助,请帮我点个赞,谢谢!
获取本文数据:下图扫码关注Python爱好者公众号,后台回复 data
Python爱好者社区历史文章大合集:
Python爱好者社区历史文章列表(每周append更新一次)
关注后在公众号内回复“课程”即可获取:
0.小编的Python入门视频课程!!!
1.崔老师爬虫实战案例免费学习视频。
2.丘老师数据科学入门指导免费学习视频。
3.陈老师数据分析报告制作免费学习视频。
4.玩转大数据分析!Spark2.X+Python 精华实战课程免费学习视频。
5.丘老师Python网络爬虫实战免费学习视频。